﻿using System.Collections.Generic;

namespace Fast.RemoteRequest
{
    [SkipScan]
    public class PollyHttpClientConfigureOptions
    {
        /// <summary>
        /// 服务名称
        /// </summary>
        public List<string> ServiceNames { get; set; }

        /// <summary>
        /// 超时时间设置，单位为秒
        /// </summary>
        public int TimeoutTime  { get; set; }

        /// <summary>
        /// 失败重试次数
        /// </summary>
        public int RetryCount  { get; set; }

        /// <summary>
        /// 执行多少次异常，开启短路器（例：失败2次，开启断路器）
        /// </summary>
        public int CircuitBreakerOpenFallCount  { get; set; }

        /// <summary>
        /// 断路器关闭的时间(例如：设置为2秒，短路器两秒后自动由开启到关闭)
        /// </summary>
        public int CircuitBreakerDownTime  { get; set; }

        /// <summary>
        /// 降级处理消息(将异常消息封装成为正常消息返回，然后进行响应处理，例如：系统正在繁忙，请稍后处理.....)
        /// </summary>
        public string FallbackHttpResponseMessage  { get; set; }

        /// <summary>
        /// 降级处理状态码(将异常消息封装成为正常消息返回，然后进行响应处理，例如：系统正在繁忙，请稍后处理.....)
        /// </summary>
        public int FallbackHttpResponseStatus  { get; set; }
    }
}